﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="ToimingOtsing", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(ToimingOtsing))]
    public class ToimingOtsingSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IToimingOtsing clazz;
        
        public ToimingOtsingSerializer(IToimingOtsing clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.EXCLUDE!=null) {
                Writer.WriteStartElement("EXCLUDE");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EXCLUDE))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MenetluseObjektID!=null) {
                Writer.WriteStartElement("MenetluseObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MenetluseObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MenetluseNR!=null) {
                Writer.WriteStartElement("MenetluseNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.MenetluseNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LiikKL!=null) {
                Writer.WriteStartElement("LiikKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.LiikKL.Count);
                for (int x = 0; ((clazz.LiikKL != null) 
                            && (x < clazz.LiikKL.Count)); x = (x + 1)) {
                    if (clazz.LiikKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LiikKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AlaLiikKL!=null) {
                Writer.WriteStartElement("AlaLiikKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.AlaLiikKL.Count);
                for (int x = 0; ((clazz.AlaLiikKL != null) 
                            && (x < clazz.AlaLiikKL.Count)); x = (x + 1)) {
                    if (clazz.AlaLiikKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AlaLiikKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AlgusKP!=null) {
                Writer.WriteStartElement("AlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.AlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlgusKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("AlgusKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.AlgusKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguMenetlejad!=null) {
                Writer.WriteStartElement("ToiminguMenetlejad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.ToiminguMenetlejad.Count);
                for (int x = 0; ((clazz.ToiminguMenetlejad != null) 
                            && (x < clazz.ToiminguMenetlejad.Count)); x = (x + 1)) {
                    if (clazz.ToiminguMenetlejad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToiminguMenetlejad = this.GetMetaData(clazz.ToiminguMenetlejad[x]);
                        Writer.WriteTypeAttribute(metaToiminguMenetlejad.TypeQualifiedName.Namespace, metaToiminguMenetlejad.TypeQualifiedName.Name);
                        metaToiminguMenetlejad.NewSerializer(clazz.ToiminguMenetlejad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Alus!=null) {
                Writer.WriteStartElement("Alus");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("SeaduseSateOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Alus.Count);
                for (int x = 0; ((clazz.Alus != null) 
                            && (x < clazz.Alus.Count)); x = (x + 1)) {
                    if (clazz.Alus[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAlus = this.GetMetaData(clazz.Alus[x]);
                        Writer.WriteTypeAttribute(metaAlus.TypeQualifiedName.Namespace, metaAlus.TypeQualifiedName.Name);
                        metaAlus.NewSerializer(clazz.Alus[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKL!=null) {
                Writer.WriteStartElement("SeisundKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SeisundKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKP!=null) {
                Writer.WriteStartElement("SeisundKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SeisundKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("SeisundKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SeisundKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToimingutMenetlevAsutus!=null) {
                Writer.WriteStartElement("ToimingutMenetlevAsutus");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("JuriidilineIsikOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.ToimingutMenetlevAsutus.Count);
                for (int x = 0; ((clazz.ToimingutMenetlevAsutus != null) 
                            && (x < clazz.ToimingutMenetlevAsutus.Count)); x = (x + 1)) {
                    if (clazz.ToimingutMenetlevAsutus[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToimingutMenetlevAsutus = this.GetMetaData(clazz.ToimingutMenetlevAsutus[x]);
                        Writer.WriteTypeAttribute(metaToimingutMenetlevAsutus.TypeQualifiedName.Namespace, metaToimingutMenetlevAsutus.TypeQualifiedName.Name);
                        metaToimingutMenetlevAsutus.NewSerializer(clazz.ToimingutMenetlevAsutus[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.UusMenetlevAsutus!=null) {
                Writer.WriteStartElement("UusMenetlevAsutus");
                global::Xtee.Core.SerializationMetadata metaUusMenetlevAsutus = this.GetMetaData(clazz.UusMenetlevAsutus);
                Writer.WriteTypeAttribute(metaUusMenetlevAsutus.TypeQualifiedName.Namespace, metaUusMenetlevAsutus.TypeQualifiedName.Name);
                metaUusMenetlevAsutus.NewSerializer(clazz.UusMenetlevAsutus).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.MeieAsjaajamisNR!=null) {
                Writer.WriteStartElement("MeieAsjaajamisNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.MeieAsjaajamisNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EsitamiseViisKL!=null) {
                Writer.WriteStartElement("EsitamiseViisKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.EsitamiseViisKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SaabumiseKP!=null) {
                Writer.WriteStartElement("SaabumiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SaabumiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SaabumiseKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("SaabumiseKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SaabumiseKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PostitamiseKP!=null) {
                Writer.WriteStartElement("PostitamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.PostitamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PostitamiseKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("PostitamiseKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.PostitamiseKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TeieAsjaajamiseNR!=null) {
                Writer.WriteStartElement("TeieAsjaajamiseNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TeieAsjaajamiseNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ObjektID!=null) {
                Writer.WriteStartElement("ObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Nimetus!=null) {
                Writer.WriteStartElement("Nimetus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Nimetus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TahtaegKP!=null) {
                Writer.WriteStartElement("TahtaegKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.TahtaegKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TahtaegKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("TahtaegKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.TahtaegKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguOsalised!=null) {
                Writer.WriteStartElement("ToiminguOsalised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.ToiminguOsalised.Count);
                for (int x = 0; ((clazz.ToiminguOsalised != null) 
                            && (x < clazz.ToiminguOsalised.Count)); x = (x + 1)) {
                    if (clazz.ToiminguOsalised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToiminguOsalised = this.GetMetaData(clazz.ToiminguOsalised[x]);
                        Writer.WriteTypeAttribute(metaToiminguOsalised.TypeQualifiedName.Namespace, metaToiminguOsalised.TypeQualifiedName.Name);
                        metaToiminguOsalised.NewSerializer(clazz.ToiminguOsalised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.KoikToiminguosalised!=null) {
                Writer.WriteStartElement("KoikToiminguosalised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.KoikToiminguosalised.Count);
                for (int x = 0; ((clazz.KoikToiminguosalised != null) 
                            && (x < clazz.KoikToiminguosalised.Count)); x = (x + 1)) {
                    if (clazz.KoikToiminguosalised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaKoikToiminguosalised = this.GetMetaData(clazz.KoikToiminguosalised[x]);
                        Writer.WriteTypeAttribute(metaKoikToiminguosalised.TypeQualifiedName.Namespace, metaKoikToiminguosalised.TypeQualifiedName.Name);
                        metaKoikToiminguosalised.NewSerializer(clazz.KoikToiminguosalised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.StaatusKL!=null) {
                Writer.WriteStartElement("StaatusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.StaatusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.StaatusKP!=null) {
                Writer.WriteStartElement("StaatusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.StaatusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.StaatusKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("StaatusKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.StaatusKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Menetlus!=null) {
                Writer.WriteStartElement("Menetlus");
                global::Xtee.Core.SerializationMetadata metaMenetlus = this.GetMetaData(clazz.Menetlus);
                Writer.WriteTypeAttribute(metaMenetlus.TypeQualifiedName.Namespace, metaMenetlus.TypeQualifiedName.Name);
                metaMenetlus.NewSerializer(clazz.Menetlus).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguNR!=null) {
                Writer.WriteStartElement("ToiminguNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PohiFail!=null) {
                Writer.WriteStartElement("PohiFail");
                global::Xtee.Core.SerializationMetadata metaPohiFail = this.GetMetaData(clazz.PohiFail);
                Writer.WriteTypeAttribute(metaPohiFail.TypeQualifiedName.Namespace, metaPohiFail.TypeQualifiedName.Name);
                metaPohiFail.NewSerializer(clazz.PohiFail).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Sisu!=null) {
                Writer.WriteStartElement("Sisu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sisu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KohustisObjektID!=null) {
                Writer.WriteStartElement("KohustisObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.KohustisObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguPohiFailiObjektID!=null) {
                Writer.WriteStartElement("ToiminguPohiFailiObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguPohiFailiObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.JoustumisKP!=null) {
                Writer.WriteStartElement("JoustumisKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.JoustumisKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseAlgusKP!=null) {
                Writer.WriteStartElement("LabiviimiseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LabiviimiseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseAlgusKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("LabiviimiseAlgusKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LabiviimiseAlgusKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseLoppKP!=null) {
                Writer.WriteStartElement("LabiviimiseLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LabiviimiseLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseVormKL!=null) {
                Writer.WriteStartElement("LabiviimiseVormKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LabiviimiseVormKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Tegevuskohad!=null) {
                Writer.WriteStartElement("Tegevuskohad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("AadressOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Tegevuskohad.Count);
                for (int x = 0; ((clazz.Tegevuskohad != null) 
                            && (x < clazz.Tegevuskohad.Count)); x = (x + 1)) {
                    if (clazz.Tegevuskohad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaTegevuskohad = this.GetMetaData(clazz.Tegevuskohad[x]);
                        Writer.WriteTypeAttribute(metaTegevuskohad.TypeQualifiedName.Namespace, metaTegevuskohad.TypeQualifiedName.Name);
                        metaTegevuskohad.NewSerializer(clazz.Tegevuskohad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AllikaksOlevKlientSysteemKL!=null) {
                Writer.WriteStartElement("AllikaksOlevKlientSysteemKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AllikaksOlevKlientSysteemKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlaLiigiTapsustusKL!=null) {
                Writer.WriteStartElement("AlaLiigiTapsustusKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.AlaLiigiTapsustusKL.Count);
                for (int x = 0; ((clazz.AlaLiigiTapsustusKL != null) 
                            && (x < clazz.AlaLiigiTapsustusKL.Count)); x = (x + 1)) {
                    if (clazz.AlaLiigiTapsustusKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AlaLiigiTapsustusKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.DokumendiSaabumiseKP!=null) {
                Writer.WriteStartElement("DokumendiSaabumiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.DokumendiSaabumiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.DokumendiSaabumiseKPVahemikuLoppKP!=null) {
                Writer.WriteStartElement("DokumendiSaabumiseKPVahemikuLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.DokumendiSaabumiseKPVahemikuLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlusToimingud!=null) {
                Writer.WriteStartElement("AlusToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.AlusToimingud.Count);
                for (int x = 0; ((clazz.AlusToimingud != null) 
                            && (x < clazz.AlusToimingud.Count)); x = (x + 1)) {
                    if (clazz.AlusToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAlusToimingud = this.GetMetaData(clazz.AlusToimingud[x]);
                        Writer.WriteTypeAttribute(metaAlusToimingud.TypeQualifiedName.Namespace, metaAlusToimingud.TypeQualifiedName.Name);
                        metaAlusToimingud.NewSerializer(clazz.AlusToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.LisaToimingud!=null) {
                Writer.WriteStartElement("LisaToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.LisaToimingud.Count);
                for (int x = 0; ((clazz.LisaToimingud != null) 
                            && (x < clazz.LisaToimingud.Count)); x = (x + 1)) {
                    if (clazz.LisaToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaLisaToimingud = this.GetMetaData(clazz.LisaToimingud[x]);
                        Writer.WriteTypeAttribute(metaLisaToimingud.TypeQualifiedName.Namespace, metaLisaToimingud.TypeQualifiedName.Name);
                        metaLisaToimingud.NewSerializer(clazz.LisaToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SeotudToimingud!=null) {
                Writer.WriteStartElement("SeotudToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SeotudToimingud.Count);
                for (int x = 0; ((clazz.SeotudToimingud != null) 
                            && (x < clazz.SeotudToimingud.Count)); x = (x + 1)) {
                    if (clazz.SeotudToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSeotudToimingud = this.GetMetaData(clazz.SeotudToimingud[x]);
                        Writer.WriteTypeAttribute(metaSeotudToimingud.TypeQualifiedName.Namespace, metaSeotudToimingud.TypeQualifiedName.Name);
                        metaSeotudToimingud.NewSerializer(clazz.SeotudToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.PohiToimingud!=null) {
                Writer.WriteStartElement("PohiToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.PohiToimingud.Count);
                for (int x = 0; ((clazz.PohiToimingud != null) 
                            && (x < clazz.PohiToimingud.Count)); x = (x + 1)) {
                    if (clazz.PohiToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaPohiToimingud = this.GetMetaData(clazz.PohiToimingud[x]);
                        Writer.WriteTypeAttribute(metaPohiToimingud.TypeQualifiedName.Namespace, metaPohiToimingud.TypeQualifiedName.Name);
                        metaPohiToimingud.NewSerializer(clazz.PohiToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MojutatavadToimingud!=null) {
                Writer.WriteStartElement("MojutatavadToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MojutatavadToimingud.Count);
                for (int x = 0; ((clazz.MojutatavadToimingud != null) 
                            && (x < clazz.MojutatavadToimingud.Count)); x = (x + 1)) {
                    if (clazz.MojutatavadToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMojutatavadToimingud = this.GetMetaData(clazz.MojutatavadToimingud[x]);
                        Writer.WriteTypeAttribute(metaMojutatavadToimingud.TypeQualifiedName.Namespace, metaMojutatavadToimingud.TypeQualifiedName.Name);
                        metaMojutatavadToimingud.NewSerializer(clazz.MojutatavadToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MojutavadToimingud!=null) {
                Writer.WriteStartElement("MojutavadToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MojutavadToimingud.Count);
                for (int x = 0; ((clazz.MojutavadToimingud != null) 
                            && (x < clazz.MojutavadToimingud.Count)); x = (x + 1)) {
                    if (clazz.MojutavadToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMojutavadToimingud = this.GetMetaData(clazz.MojutavadToimingud[x]);
                        Writer.WriteTypeAttribute(metaMojutavadToimingud.TypeQualifiedName.Namespace, metaMojutavadToimingud.TypeQualifiedName.Name);
                        metaMojutavadToimingud.NewSerializer(clazz.MojutavadToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Failid!=null) {
                Writer.WriteStartElement("Failid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("FailOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Failid.Count);
                for (int x = 0; ((clazz.Failid != null) 
                            && (x < clazz.Failid.Count)); x = (x + 1)) {
                    if (clazz.Failid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaFailid = this.GetMetaData(clazz.Failid[x]);
                        Writer.WriteTypeAttribute(metaFailid.TypeQualifiedName.Namespace, metaFailid.TypeQualifiedName.Name);
                        metaFailid.NewSerializer(clazz.Failid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Markused!=null) {
                Writer.WriteStartElement("Markused");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Markused))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OnAvalikustatud!=null) {
                Writer.WriteStartElement("OnAvalikustatud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.OnAvalikustatud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MenetlusPost!=null) {
                Writer.WriteStartElement("MenetlusPost");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("MenetlusPostOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MenetlusPost.Count);
                for (int x = 0; ((clazz.MenetlusPost != null) 
                            && (x < clazz.MenetlusPost.Count)); x = (x + 1)) {
                    if (clazz.MenetlusPost[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMenetlusPost = this.GetMetaData(clazz.MenetlusPost[x]);
                        Writer.WriteTypeAttribute(metaMenetlusPost.TypeQualifiedName.Namespace, metaMenetlusPost.TypeQualifiedName.Name);
                        metaMenetlusPost.NewSerializer(clazz.MenetlusPost[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AvalikustatudFail!=null) {
                Writer.WriteStartElement("AvalikustatudFail");
                global::Xtee.Core.SerializationMetadata metaAvalikustatudFail = this.GetMetaData(clazz.AvalikustatudFail);
                Writer.WriteTypeAttribute(metaAvalikustatudFail.TypeQualifiedName.Namespace, metaAvalikustatudFail.TypeQualifiedName.Name);
                metaAvalikustatudFail.NewSerializer(clazz.AvalikustatudFail).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Annotatsioonid!=null) {
                Writer.WriteStartElement("Annotatsioonid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("AnnotatsioonOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Annotatsioonid.Count);
                for (int x = 0; ((clazz.Annotatsioonid != null) 
                            && (x < clazz.Annotatsioonid.Count)); x = (x + 1)) {
                    if (clazz.Annotatsioonid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAnnotatsioonid = this.GetMetaData(clazz.Annotatsioonid[x]);
                        Writer.WriteTypeAttribute(metaAnnotatsioonid.TypeQualifiedName.Namespace, metaAnnotatsioonid.TypeQualifiedName.Name);
                        metaAnnotatsioonid.NewSerializer(clazz.Annotatsioonid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Pohjendus!=null) {
                Writer.WriteStartElement("Pohjendus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Pohjendus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sissejuhatus!=null) {
                Writer.WriteStartElement("Sissejuhatus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sissejuhatus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LahenduseLiikKL!=null) {
                Writer.WriteStartElement("LahenduseLiikKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.LahenduseLiikKL.Count);
                for (int x = 0; ((clazz.LahenduseLiikKL != null) 
                            && (x < clazz.LahenduseLiikKL.Count)); x = (x + 1)) {
                    if (clazz.LahenduseLiikKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LahenduseLiikKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Resolutsioon!=null) {
                Writer.WriteStartElement("Resolutsioon");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Resolutsioon))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MarksonaStaatusKL!=null) {
                Writer.WriteStartElement("MarksonaStaatusKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.MarksonaStaatusKL.Count);
                for (int x = 0; ((clazz.MarksonaStaatusKL != null) 
                            && (x < clazz.MarksonaStaatusKL.Count)); x = (x + 1)) {
                    if (clazz.MarksonaStaatusKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MarksonaStaatusKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.EdastamiseViisKL!=null) {
                Writer.WriteStartElement("EdastamiseViisKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.EdastamiseViisKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseTaseKL!=null) {
                Writer.WriteStartElement("SalastatuseTaseKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SalastatuseTaseKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EdasiKaevatud!=null) {
                Writer.WriteStartElement("EdasiKaevatud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EdasiKaevatud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EriarvamusEsitatud!=null) {
                Writer.WriteStartElement("EriarvamusEsitatud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EriarvamusEsitatud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ByrooToiminguosalised!=null) {
                Writer.WriteStartElement("ByrooToiminguosalised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.ByrooToiminguosalised.Count);
                for (int x = 0; ((clazz.ByrooToiminguosalised != null) 
                            && (x < clazz.ByrooToiminguosalised.Count)); x = (x + 1)) {
                    if (clazz.ByrooToiminguosalised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaByrooToiminguosalised = this.GetMetaData(clazz.ByrooToiminguosalised[x]);
                        Writer.WriteTypeAttribute(metaByrooToiminguosalised.TypeQualifiedName.Namespace, metaByrooToiminguosalised.TypeQualifiedName.Name);
                        metaByrooToiminguosalised.NewSerializer(clazz.ByrooToiminguosalised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="EXCLUDE") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>ToimingOtsing>EXCLUDE");
                }
                clazz.EXCLUDE = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("EXCLUDE")).Value;
            }
            if (Reader.LocalName=="MenetluseObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MenetluseObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("MenetluseObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MenetluseNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MenetluseNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("MenetluseNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LiikKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("LiikKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>ToimingOtsing>LiikKL>item");
                            }
                            clazz.LiikKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlaLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlaLiikKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AlaLiikKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>ToimingOtsing>AlaLiikKL>item");
                            }
                            clazz.AlaLiikKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("AlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlgusKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlgusKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("AlgusKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguMenetlejad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguMenetlejad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("ToiminguMenetlejad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToiminguMenetlejad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>(Reader, "ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing item = metaToiminguMenetlejad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                                clazz.ToiminguMenetlejad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToiminguMenetlejad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.ToiminguMenetlejad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Alus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Alus = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSateOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Alus");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAlus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSateOtsing>(Reader, "SeaduseSateOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSateOtsing item = metaAlus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSateOtsing>();
                                clazz.Alus.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAlus.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Alus.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SeisundKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SeisundKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SeisundKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToimingutMenetlevAsutus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToimingutMenetlevAsutus = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsikOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("ToimingutMenetlevAsutus");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToimingutMenetlevAsutus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsikOtsing>(Reader, "JuriidilineIsikOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsikOtsing item = metaToimingutMenetlevAsutus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsikOtsing>();
                                clazz.ToimingutMenetlevAsutus.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToimingutMenetlevAsutus.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.ToimingutMenetlevAsutus.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="UusMenetlevAsutus") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaUusMenetlevAsutus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsikOtsing>(Reader, "JuriidilineIsikOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.UusMenetlevAsutus = metaUusMenetlevAsutus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsikOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("UusMenetlevAsutus");
                        metaUusMenetlevAsutus.NewSerializer(clazz.UusMenetlevAsutus).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MeieAsjaajamisNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MeieAsjaajamisNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("MeieAsjaajamisNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EsitamiseViisKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EsitamiseViisKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("EsitamiseViisKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SaabumiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SaabumiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SaabumiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SaabumiseKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SaabumiseKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SaabumiseKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PostitamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PostitamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("PostitamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PostitamiseKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PostitamiseKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("PostitamiseKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TeieAsjaajamiseNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TeieAsjaajamiseNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("TeieAsjaajamiseNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Nimetus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Nimetus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Nimetus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TahtaegKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TahtaegKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("TahtaegKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TahtaegKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TahtaegKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("TahtaegKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguOsalised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguOsalised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("ToiminguOsalised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToiminguOsalised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>(Reader, "ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing item = metaToiminguOsalised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                                clazz.ToiminguOsalised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToiminguOsalised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.ToiminguOsalised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KoikToiminguosalised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KoikToiminguosalised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("KoikToiminguosalised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaKoikToiminguosalised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>(Reader, "ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing item = metaKoikToiminguosalised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                                clazz.KoikToiminguosalised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaKoikToiminguosalised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.KoikToiminguosalised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("StaatusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("StaatusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatusKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatusKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("StaatusKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Menetlus") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaMenetlus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusOtsing>(Reader, "MenetlusOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.Menetlus = metaMenetlus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Menetlus");
                        metaMenetlus.NewSerializer(clazz.Menetlus).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PohiFail") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaPohiFail = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>(Reader, "FailOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.PohiFail = metaPohiFail.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("PohiFail");
                        metaPohiFail.NewSerializer(clazz.PohiFail).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sisu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sisu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sisu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KohustisObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KohustisObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("KohustisObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguPohiFailiObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguPohiFailiObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguPohiFailiObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="JoustumisKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.JoustumisKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("JoustumisKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LabiviimiseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseAlgusKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseAlgusKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LabiviimiseAlgusKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LabiviimiseLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseVormKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseVormKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LabiviimiseVormKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Tegevuskohad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Tegevuskohad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadressOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Tegevuskohad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaTegevuskohad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadressOtsing>(Reader, "AadressOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadressOtsing item = metaTegevuskohad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadressOtsing>();
                                clazz.Tegevuskohad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaTegevuskohad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Tegevuskohad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AllikaksOlevKlientSysteemKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AllikaksOlevKlientSysteemKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("AllikaksOlevKlientSysteemKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlaLiigiTapsustusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlaLiigiTapsustusKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AlaLiigiTapsustusKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>ToimingOtsing>AlaLiigiTapsustusKL>item");
                            }
                            clazz.AlaLiigiTapsustusKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="DokumendiSaabumiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.DokumendiSaabumiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("DokumendiSaabumiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="DokumendiSaabumiseKPVahemikuLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.DokumendiSaabumiseKPVahemikuLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("DokumendiSaabumiseKPVahemikuLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlusToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlusToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AlusToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAlusToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>(Reader, "ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing item = metaAlusToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                                clazz.AlusToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAlusToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.AlusToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LisaToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LisaToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("LisaToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaLisaToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>(Reader, "ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing item = metaLisaToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                                clazz.LisaToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaLisaToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.LisaToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeotudToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeotudToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SeotudToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSeotudToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>(Reader, "ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing item = metaSeotudToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                                clazz.SeotudToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSeotudToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SeotudToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PohiToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PohiToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("PohiToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaPohiToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>(Reader, "ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing item = metaPohiToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                                clazz.PohiToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaPohiToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.PohiToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MojutatavadToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MojutatavadToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MojutatavadToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMojutatavadToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>(Reader, "ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing item = metaMojutatavadToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                                clazz.MojutatavadToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMojutatavadToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MojutatavadToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MojutavadToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MojutavadToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MojutavadToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMojutavadToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>(Reader, "ToimingOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing item = metaMojutavadToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToimingOtsing>();
                                clazz.MojutavadToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMojutavadToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MojutavadToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Failid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Failid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Failid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaFailid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>(Reader, "FailOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing item = metaFailid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>();
                                clazz.Failid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaFailid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Failid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Markused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Markused = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Markused")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="OnAvalikustatud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.OnAvalikustatud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("OnAvalikustatud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MenetlusPost") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MenetlusPost = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPostOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MenetlusPost");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMenetlusPost = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPostOtsing>(Reader, "MenetlusPostOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPostOtsing item = metaMenetlusPost.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPostOtsing>();
                                clazz.MenetlusPost.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMenetlusPost.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MenetlusPost.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AvalikustatudFail") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaAvalikustatudFail = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>(Reader, "FailOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.AvalikustatudFail = metaAvalikustatudFail.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFailOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AvalikustatudFail");
                        metaAvalikustatudFail.NewSerializer(clazz.AvalikustatudFail).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Annotatsioonid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Annotatsioonid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAnnotatsioonOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Annotatsioonid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAnnotatsioonid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAnnotatsioonOtsing>(Reader, "AnnotatsioonOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAnnotatsioonOtsing item = metaAnnotatsioonid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAnnotatsioonOtsing>();
                                clazz.Annotatsioonid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAnnotatsioonid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Annotatsioonid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Pohjendus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Pohjendus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Pohjendus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sissejuhatus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sissejuhatus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sissejuhatus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahenduseLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahenduseLiikKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("LahenduseLiikKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>ToimingOtsing>LahenduseLiikKL>item");
                            }
                            clazz.LahenduseLiikKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Resolutsioon") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Resolutsioon = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Resolutsioon")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MarksonaStaatusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MarksonaStaatusKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MarksonaStaatusKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>ToimingOtsing>MarksonaStaatusKL>item");
                            }
                            clazz.MarksonaStaatusKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EdastamiseViisKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EdastamiseViisKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("EdastamiseViisKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseTaseKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseTaseKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SalastatuseTaseKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EdasiKaevatud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EdasiKaevatud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("EdasiKaevatud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EriarvamusEsitatud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EriarvamusEsitatud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("EriarvamusEsitatud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ByrooToiminguosalised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ByrooToiminguosalised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("ByrooToiminguosalised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaByrooToiminguosalised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>(Reader, "ToiminguOsalineOtsing", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing item = metaByrooToiminguosalised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsalineOtsing>();
                                clazz.ByrooToiminguosalised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaByrooToiminguosalised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.ByrooToiminguosalised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
